"""
@version:python3
@author:大橘为重
@file:QTableWidget.py
@time:2022/3/2 20:13
"""

# 每一个cell（单元格）是一个QTableWidgetItem
# setItem：将文本放入单元格中
# setCellWidget：将控件放入单元格中

# 0、导入需要的包和模块
from PyQt5.Qt import *
import sys

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QTableWidget")
        self.resize(500, 500)
        self.setup_ui()
    def setup_ui(self): # 添加子控件以及子控件的配置操作
        layout = QHBoxLayout()



        tablewidget = QTableWidget(self)
        tablewidget.setRowCount(4)
        tablewidget.setColumnCount(4)
        tablewidget.setHorizontalHeaderLabels(["姓名", "性别","年龄", "籍贯"])
        print(tablewidget.rowCount()) # 计算行列数量
        print(tablewidget.columnCount()) # 计算行列数量

        # tablewidget.resizeRowsToContents()
        # tablewidget.resizeColumnsToContents()

        nameitem = QTableWidgetItem("小明")
        tablewidget.setItem(0,0,nameitem)
        ageitem = QTableWidgetItem("15")
        tablewidget.setItem(0, 2, ageitem)
        jgitem = QTableWidgetItem("M78星云光之国")
        tablewidget.setItem(0, 3, jgitem)

        combobox = QComboBox()
        combobox.addItem("男")
        combobox.addItem("女")
        combobox.setStyleSheet("QComboBox:{margin:3px};")
        tablewidget.setCellWidget(0,1,combobox)


        tablewidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)  # 设置表格为自适应拉伸模式
        # tablewidget.resizeRowsToContents()
        # tablewidget.resizeColumnsToContents()

        layout.addWidget(tablewidget)
        self.setLayout(layout)
        # tablewidget.setRowCount(8)

# 1、创建一个应用程序对象
app = QApplication(sys.argv)

# 2、控件操作
# 创建控件、设置控件、事件和信号的处理
# 2.1 创建控件
window = Window()
# 2.2 设置控件


# 2.3 展示控件
window.show()

# 3、应用程序的执行，进入到消息循环
sys.exit(app.exec_())